#!/usr/bin/env python
# -*- coding:utf-8 -*-

# file:守护进程.py
# author: 马国鑫
# datetime:2022/3/26 21:14
# software: PyCharm

"""
    让子进程随着主进程的结束而结束的两种方式:
    1.守护进程 子进程对象.daemon = True
    2.手动设置销毁 子进程对象.terminate()
"""

# import module your need
import multiprocessing
import time


def func():
    for i in range(5):
        time.sleep(0.2)
        print("func")


if __name__ == '__main__':
    # 注意：主进程会等待子进程结束后再结束
    # 程序一运行就会创建主进程
    my_func = multiprocessing.Process(target=func)  # 主进程创建了子进程

    # 方式一:设置守护进程（需要在使用start之前使用）
    # my_func.daemon = True

    my_func.start()  # 主进程开启了子进程

    time.sleep(0.5)
    # 方式2：手动设置
    my_func.terminate()
    print("主进程:over")
    exit()
